/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema.medico.controlador;

import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
import com.db4o.query.Constraint;
import com.db4o.query.Predicate;
import com.db4o.query.Query;
import java.util.Comparator;
import java.util.List;
import javax.swing.JOptionPane;
import sistema.medico.datos.DataConnection;
import sistema.medico.negocio.Equivalente;


/**
 *
 * @author ESTUDIANTE
 */
public class Controlador_Equivalente {
    
    ////////////////////////////////////////////////////////////////////////////
    ObjectContainer db = DataConnection.getInstance();//variable que contiene la informacion de la BD
    private List<Equivalente> listMedicos;
    ////////////////////////////////////////////////////////////////////////////
    public void Guardar(Equivalente e) {
        db.store(e);
        db.commit();
    }
    
    ////////////////////////////////////////////////////////////////////////////
    public List<Equivalente> listar() {
        @SuppressWarnings("UnusedAssignment")
        List<Equivalente> e = null;
        e = db.query(Equivalente.class);//Cojemos todos los registros
        return e;
    }
    
    ////////////////////////////////////////////////////////////////////////////
    public Equivalente getMedico(final String codigo_alimento) {
        @SuppressWarnings("UnusedAssignment")
        List<Equivalente> eq = null;
        eq = db.query(new Predicate<Equivalente>() {
            
        @Override
        public boolean match(Equivalente o) {
                return o.getCodigo_alimento().toLowerCase().contains(codigo_alimento.toLowerCase());//convertimos todo a minÃºscula y comparamos
            }
        }, new Comparator<Equivalente>() {
            @Override
            public int compare(Equivalente o1, Equivalente o2) {
                return 0;
            }
        });
        if (eq.size() == 0) {
            JOptionPane.showMessageDialog(null, "No Existe Equivalente");
            return null;
        } else {
            return eq.get(0);
        }
    }
    
    
    
    ////////////////////////////////////////////////////////////////////////////
    public void Actualizar(String codigo, String descripcion, int calorias ) {
        Query query = db.query();
        query.constrain(Equivalente.class);
        Constraint constraint = query.descend("codigo").constrain(codigo);
        ObjectSet resultado = query.execute();
        Equivalente dd = (Equivalente) resultado.get(0);
        dd.getCodigo_alimento();
        dd.getDescripcion();
        dd.getCalorias();
        db.store(dd);
    }
    
    
}
